perm filename FORMAT.FF[LSP,LSP] blob sn#210791 filedate 1976-04-13 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(DEFPROP FORMFUNS
C00004 ENDMK
CāŠ—;
(DEFPROP FORMFUNS
 (LAMBDA (NAMES)
  (PROG (DONE LINCNT)
	(SETQ LINCNT 1)
	(LINEF 1)
   LOOP	(COND ((NULL NAMES) (OUTC NIL T) (RETURN DONE)))
	(COND ((NOT (ATOM (CAR NAMES)))
	       (OUTC (EVAL (CONS (Q OUTPUT) (CAR NAMES))) NIL))
	      (T (SETQ DONE (APPEND DONE (FORMATFUN (CAR NAMES))))))
	(SETQ NAMES (CDR NAMES))
	(GO LOOP)))
 FEXPR)

(DFUNC (FORMATFUN NAME)
 (PROG (DONE PLIST PROP)
       (SETQ PLIST (FIRSTPROP NAME))
  LOOP (COND ((LASTPROP PLIST) (RETURN (REVERSE DONE))))
       (SETQ PROP (SEEKPROP (PROPNAM PLIST) (Q PROPFORM)))
       (COND ((NULL PROP) (GO ELOOP)))
       (SETQ DONE (CONS (CONS NAME (PROPNAM PLIST)) DONE))
       ((PROPVAL PROP) NAME (PROPVAL PLIST) (PROPNAM PLIST))
  ELOOP(SETQ PLIST (NEXTPROP PLIST))
       (GO LOOP)))

(DFUNC (FORMATEXPR NAME PROP FLAG)
       (FORMANEXPR (LIST (Q DEFPROP) NAME PROP FLAG)))

(DFUNC (FORMATFEXPR NAME PROP FLAG)
       (FORMANEXPR (LIST (Q DEFPROP) NAME PROP FLAG)))

(DFUNC (FORMATMACRO NAME PROP FLAG)
       (FORMANEXPR (LIST (Q DEFPROP) NAME PROP FLAG)))

(DFUNC (FORMATVALUE NAME PROP FLAG)
       (FORMANEXPR (LIST (Q SETQ) NAME (CDR PROP))))

(MAPDEF PROPFORM (EXPR FORMATEXPR) (FEXPR FORMATFEXPR)
		 (MACRO FORMATMACRO) (VALUE FORMATVALUE))